复杂对象
异构数据
XML对象可以包含异构的组件组合。例如:
|
|
返回书籍和期刊记录的混合:
|
|
“Parent/*”构造用于访问各个组件,即使它们可能具有不同的名称。将XML输出管道化为:
|
|
单独打印每个XML组件的全部内容:
|
|
使用“父/子”构造可以隔离具有相同名称的对象,这些对象因其在XML层次结构中的位置而不同。例如:
|
|
为书/章作者,书籍编辑和文章作者写单独的行:
|
|
只需用个别参数进行探索:
|
|
将访问编辑器(在BookDocument / Book / AuthorList)以及作者(在BookDocument / AuthorList),并按照XML中的外观顺序打印名称:
|
|
(在这个特定的例子中,书籍作者列表可以通过使用-if“@Type”-equals作者或-if“@Type”-equals编辑器来区分,但是通过“父/子”进行探索是一种基于位置的一般方法。 )
递归定义
由efetch返回的某些XML对象是递归定义的,包括TaxaSet中的Taxon(-db分类法)和Entrezgene中的Gene-commentary(-db gene)。因此,它们可以具有相同XML标记的嵌套对象。
检索一组分类记录:
|
|
对于分类谱系中的每个等级,使用嵌套的Taxon对象(下面标有行引用)生成XML:
|
|
Xtract跟踪XML对象嵌套,以确定第1行的
当一个递归对象被赋予一个探索命令时,使用-element命令选择数据:
|
|
不检查内部对象中的字段,仅返回主条目的信息:
|
|
“*/Child”构造将跳过外部开始标记:
|
|
单独访问下一级嵌套对象:
|
|
可以使用双星斜杠前缀完全探索递归对象:
|
|
无论嵌套深度如何,它都会访问每个子对象:
|
|